package cdu.javaendwork.service.Interface.AdoptionMore;

import cdu.javaendwork.model.sqlModel.Request;

import java.util.Date;
import java.util.List;

public interface RequestService {
    //---------------------------王涛同学负责-------------------------------
    //请注意，在Request表中我们暂时将status=1表示为用户发出的领养请求但未被处理
    //                          status=2表示用户的领养请求被主人接受
    //                          status=3表示用户的领养请求被主人拒绝
    //                          status=4表示该领养帖子的主人已经答应了其他人的领养请求并未答应此用户的领养请求
    //--------------------------------------------------------------------
    //添加一条领养请求信息
    public boolean insert(int host_user_id, int userid, int postid, int status, Date date);
    //修改某个领养请求，在主人接受或拒绝或该帖子已经被领养之后或许会修改一些领养请求的状态码
    public boolean update(int id ,int host_user_id,int userid,int postid,int status,Date date);
    //删除某个领养请求，或许领养请求可以被取消
    public boolean delete(int id);

    //根据id单查某个请求的详细信息
    public Request findById(int id);
    //分页查询该用户发起的所有领养请求
    public List<Request> filterByUserIdLimit(int userid , int pageIndex,int pageSize);
    //分页查询该用户所有收到的领养请求，在查看自己是否有新的请求时可能会用到
    public List<Request> filterByHostUserIdLimit(int host_user_id,int pageIndex , int pageSize);
    //分页查询关于该帖子的所有领养请求，在查看单个帖子的领养请求时或许会用到
    public List<Request> filterByPostIdLimit(int postid,int pageIndex,int pageSize);
//查询某个帖子所有的请求
    public boolean isAdopted(int postid);
    //根据postid和userid查询其他用户对该帖子的领养请求
    List<Request> filterByPostidAndUserid(int postid , int userid);

}
